/* 
 * ApplyRule.java
 * 
 * Data de criação: 09/04/2010
 * 
 * O2SOLUTIONS - SOLUÇÕES EM TECNOLOGIA DA INFORMAÇÃO. 
 *
 */
package br.com.o2solutions.core.aop.business.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import br.com.o2solutions.core.service.rule.Rule;

/**
 * Anotacao para marcacao dos metodos que deverao receber a aplicacao de regras
 * antes da execução dele.
 * 
 * @author osvaldeir
 * @since 09/04/2010
 * 
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ApplyRule {

	/**
	 * Classes que implementam a interface {@link Rule} que deverao realizar a
	 * aplicacao da regra no tipo generico de cada implementacao.
	 * 
	 */
	public Class<? extends Rule<?>>[] rules();

}
